#                                               -*- cmake -*-

set (PYINSTALLCHECK_ENVIRONMENT "OPENTURNS_CONFIG_PATH=${INSTALL_DESTDIR}${SYSCONFIG_PATH}/openturns"
                                 "PYTHONPATH=${INSTALL_DESTDIR}${PYTHON_MODULE_PATH}${PATH_SEP}$ENV{PYTHONPATH}" "MPLBACKEND=agg"
   )

# This macro runs a Python test
macro (ot_pyinstallcheck_test TESTNAME)
  set (TEST_TARGET t_${TESTNAME})
  set (TESTNAME_LOC ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_TARGET}.py)

  set (_IGNOREOUT OFF)
  foreach (_ARG ${ARGN})
    if (${_ARG} MATCHES IGNOREOUT)
      set (_IGNOREOUT ON)
    endif ()
  endforeach ()

  if (_IGNOREOUT)
    add_test (NAME pyinstallcheck_${TESTNAME} COMMAND ${Python_EXECUTABLE} ${TESTNAME_LOC})
  else ()
    set (OUTFILE_LOC ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_TARGET}.expout)
    if (NOT EXISTS ${OUTFILE_LOC})
      message (SEND_ERROR "Missing file ${OUTFILE_LOC}")
    endif ()
    add_test (NAME pyinstallcheck_${TESTNAME} COMMAND "sh" "-c" "(${Python_EXECUTABLE} ${TESTNAME_LOC} > ${CMAKE_CURRENT_BINARY_DIR}/${TEST_TARGET}.out) && diff -u --strip-trailing-cr ${OUTFILE_LOC} ${CMAKE_CURRENT_BINARY_DIR}/${TEST_TARGET}.out")
  endif ()

  set_tests_properties (pyinstallcheck_${TESTNAME} PROPERTIES ENVIRONMENT "${PYINSTALLCHECK_ENVIRONMENT}")
endmacro ()


# Use cases
ot_pyinstallcheck_test (ackley_function IGNOREOUT)
ot_pyinstallcheck_test (branin_function IGNOREOUT)
ot_pyinstallcheck_test (cantilever_beam IGNOREOUT)
ot_pyinstallcheck_test (coles IGNOREOUT)
ot_pyinstallcheck_test (chaboche_model IGNOREOUT)
ot_pyinstallcheck_test (deflection_tube IGNOREOUT)
ot_pyinstallcheck_test (flood_model IGNOREOUT)
ot_pyinstallcheck_test (ishigami_function IGNOREOUT)
ot_pyinstallcheck_test (logistic_model IGNOREOUT)
ot_pyinstallcheck_test (stressed_beam IGNOREOUT)
ot_pyinstallcheck_test (fire_satellite IGNOREOUT)
ot_pyinstallcheck_test (wingweight_function IGNOREOUT)
ot_pyinstallcheck_test (oscillator IGNOREOUT)
ot_pyinstallcheck_test (stiffened_panel IGNOREOUT)
if (NUMPY_FOUND)
  ot_pyinstallcheck_test (viscous_free_fall IGNOREOUT)
endif()

# Common
ot_pyinstallcheck_test (Object_std IGNOREOUT)
if (LIBXML2_FOUND)
  ot_pyinstallcheck_test (Object_pickle)
endif ()
ot_pyinstallcheck_test (ComparisonOperator_std)
if (LIBXML2_FOUND)
  ot_pyinstallcheck_test (Study_saveload)
  ot_pyinstallcheck_test (Study_std IGNOREOUT)
  if (HDF5_FOUND)
    ot_pyinstallcheck_test (Study_h5 IGNOREOUT)
  endif ()
endif ()
ot_pyinstallcheck_test (Path_std IGNOREOUT)
ot_pyinstallcheck_test (ResourceMap_std IGNOREOUT)

# Type
ot_pyinstallcheck_test (Collection_std)
ot_pyinstallcheck_test (Description_std)
ot_pyinstallcheck_test (Indices_std)
ot_pyinstallcheck_test (IndicesCollection_std)
ot_pyinstallcheck_test (Point_std)
ot_pyinstallcheck_test (Point_description)
ot_pyinstallcheck_test (Matrix_std)
ot_pyinstallcheck_test (SymmetricMatrix_lapack)
ot_pyinstallcheck_test (SquareMatrix_lapack)
ot_pyinstallcheck_test (SquareMatrix_std)
ot_pyinstallcheck_test (TriangularMatrix_std)
ot_pyinstallcheck_test (SymmetricMatrix_std)
ot_pyinstallcheck_test (Tensor_std)
ot_pyinstallcheck_test (ComplexTensor_std)
ot_pyinstallcheck_test (SymmetricTensor_std)
ot_pyinstallcheck_test (Matrix_solve)
ot_pyinstallcheck_test (Matrix_decomposition)
ot_pyinstallcheck_test (IdentityMatrix_std)
ot_pyinstallcheck_test (RegularGrid_std)
ot_pyinstallcheck_test (ComplexMatrix_std)
ot_pyinstallcheck_test (SquareComplexMatrix_std)
ot_pyinstallcheck_test (HermitianMatrix_std)
ot_pyinstallcheck_test (TriangularComplexMatrix_std)
ot_pyinstallcheck_test (Matrix_slice)
ot_pyinstallcheck_test (Matrix_operators)
if (NUMPY_FOUND)
  ot_pyinstallcheck_test (Matrix_numpy)
endif ()

# Func
ot_pyinstallcheck_test (SpecFunc_std)
ot_pyinstallcheck_test (Function_std)
ot_pyinstallcheck_test (Function_linearity IGNOREOUT)
ot_pyinstallcheck_test (ComposedFunction_std)
ot_pyinstallcheck_test (Function_python IGNOREOUT)
if (LIBXML2_FOUND)
ot_pyinstallcheck_test (Function_python_saveload)
endif ()
ot_pyinstallcheck_test (DatabaseFunction_std)
ot_pyinstallcheck_test (Function_operations)
ot_pyinstallcheck_test (ParametricFunction_std)
ot_pyinstallcheck_test (IdentityFunction_std IGNOREOUT)
ot_pyinstallcheck_test (Function_draw)
ot_pyinstallcheck_test (MemoizeFunction_std)
ot_pyinstallcheck_test (AggregatedEvaluation_std)
if (OPENTURNS_HAVE_EXPRTK)
ot_pyinstallcheck_test (SymbolicEvaluation_std)
ot_pyinstallcheck_test (SymbolicGradient_std)
ot_pyinstallcheck_test (SymbolicHessian_std)
ot_pyinstallcheck_test (SymbolicFunction_std)
endif ()
if (OPENTURNS_HAVE_MUPARSER)
ot_pyinstallcheck_test (SymbolicEvaluation_muparser)
ot_pyinstallcheck_test (SymbolicGradient_muparser)
ot_pyinstallcheck_test (SymbolicHessian_muparser)
ot_pyinstallcheck_test (SymbolicFunction_muparser)
endif ()
ot_pyinstallcheck_test (TranslationFunction_std)
ot_pyinstallcheck_test (LinearFunction_std)
ot_pyinstallcheck_test (LinearEvaluation_std)
ot_pyinstallcheck_test (LinearCombinationEvaluation_std)
ot_pyinstallcheck_test (LinearCombinationGradient_std)
ot_pyinstallcheck_test (LinearCombinationHessian_std)
ot_pyinstallcheck_test (PiecewiseLinearEvaluation_std)
ot_pyinstallcheck_test (PiecewiseHermiteEvaluation_std)
ot_pyinstallcheck_test (QuadraticFunction_std)
ot_pyinstallcheck_test (QuadraticEvaluation_std)
ot_pyinstallcheck_test (LinearGradient_std)
ot_pyinstallcheck_test (AggregatedFunction_std)
ot_pyinstallcheck_test (DualLinearCombinationFunction_std)
ot_pyinstallcheck_test (IndicatorFunction_std IGNOREOUT)
ot_pyinstallcheck_test (DistanceToDomainFunction_std IGNOREOUT)
ot_pyinstallcheck_test (LinearCombinationFunction_std)
ot_pyinstallcheck_test (ConstantGradient_std)
ot_pyinstallcheck_test (ConstantHessian_std)
ot_pyinstallcheck_test (ConstantFunction_std IGNOREOUT)
ot_pyinstallcheck_test (Basis_std IGNOREOUT)
ot_pyinstallcheck_test (BasisSequence_std)
ot_pyinstallcheck_test (LARS_std)
ot_pyinstallcheck_test (LARS_noisy_error IGNOREOUT)
ot_pyinstallcheck_test (FieldFunction_std)
ot_pyinstallcheck_test (FieldFunction_python)
ot_pyinstallcheck_test (ValueFunction_std)
ot_pyinstallcheck_test (VertexValueFunction_std)
ot_pyinstallcheck_test (FieldToPointFunction_std)
ot_pyinstallcheck_test (FieldToPointFunction_python)
ot_pyinstallcheck_test (PointToFieldFunction_std)
ot_pyinstallcheck_test (PointToFieldFunction_python)
if (LIBXML2_FOUND AND DILL_FOUND)
  ot_pyinstallcheck_test (PythonPointToFieldFunction_save IGNOREOUT)
  ot_pyinstallcheck_test (PythonPointToFieldFunction_load IGNOREOUT)
  set_tests_properties(pyinstallcheck_PythonPointToFieldFunction_load
    PROPERTIES DEPENDS pyinstallcheck_PythonPointToFieldFunction_save)
endif ()
ot_pyinstallcheck_test (ParametricPointToFieldFunction_std)
ot_pyinstallcheck_test (VertexValuePointToFieldFunction_std)
ot_pyinstallcheck_test (VertexFieldToPointFunction_std IGNOREOUT)
ot_pyinstallcheck_test (BoxCoxEvaluation_std)
ot_pyinstallcheck_test (BoxCoxTransform_std)
ot_pyinstallcheck_test (InverseBoxCoxEvaluation_std)
ot_pyinstallcheck_test (InverseBoxCoxTransform_std)
ot_pyinstallcheck_test (TrendEvaluation_std)
ot_pyinstallcheck_test (TrendTransform_std)
ot_pyinstallcheck_test (InverseTrendEvaluation_std)
ot_pyinstallcheck_test (InverseTrendTransform_std)
ot_pyinstallcheck_test (ExpertMixture_std)
ot_pyinstallcheck_test (UniVariatePolynomial_std)
ot_pyinstallcheck_test (BasisFactory_std)
ot_pyinstallcheck_test (Field_std)
ot_pyinstallcheck_test (MonomialFunction_std)
ot_pyinstallcheck_test (MonomialFunctionFactory_std)
ot_pyinstallcheck_test (TensorizedUniVariateFunctionFactory_std)
ot_pyinstallcheck_test (PointToPointEvaluation_std)
ot_pyinstallcheck_test (PointToPointConnection_std)
ot_pyinstallcheck_test (PointToFieldConnection_std)
ot_pyinstallcheck_test (FieldToPointConnection_std)
ot_pyinstallcheck_test (FieldToFieldConnection_std)
if (NOT MINGW)
  ot_pyinstallcheck_test (PythonFunction_multiprocessing IGNOREOUT)
endif ()
if (LIBXML2_FOUND AND DILL_FOUND)
  ot_pyinstallcheck_test (PythonFunction_save IGNOREOUT)
  ot_pyinstallcheck_test (PythonFunction_load IGNOREOUT)
  set_tests_properties(pyinstallcheck_PythonFunction_load
    PROPERTIES DEPENDS pyinstallcheck_PythonFunction_save)
endif ()

# Stat
ot_pyinstallcheck_test (Sample_std)
ot_pyinstallcheck_test (Sample_computation)
ot_pyinstallcheck_test (Sample_slice)
ot_pyinstallcheck_test (Sample_split)
ot_pyinstallcheck_test (Sample_large)
ot_pyinstallcheck_test (Sample_bug14)
ot_pyinstallcheck_test (Sample_csv)
ot_pyinstallcheck_test (Sample_operators)
if (PANDAS_FOUND)
  ot_pyinstallcheck_test (Sample_pandas IGNOREOUT)
endif ()
ot_pyinstallcheck_test (SamplePartition_std IGNOREOUT)
ot_pyinstallcheck_test (HistoryStrategy_std)
ot_pyinstallcheck_test (CovarianceMatrix_std)
ot_pyinstallcheck_test (CorrelationMatrix_std)
ot_pyinstallcheck_test (CorrelationAnalysis_std IGNOREOUT)
ot_pyinstallcheck_test (Field_draw)
ot_pyinstallcheck_test (ProcessSample_std)
ot_pyinstallcheck_test (RandomGenerator_std)
ot_pyinstallcheck_test (SobolSequence_std IGNOREOUT)
ot_pyinstallcheck_test (FaureSequence_std IGNOREOUT)
ot_pyinstallcheck_test (HaltonSequence_std IGNOREOUT)
ot_pyinstallcheck_test (HaselgroveSequence_std)
ot_pyinstallcheck_test (ReverseHaltonSequence_std)
ot_pyinstallcheck_test (TestResult_std)
ot_pyinstallcheck_test (TimeSeries_std)
ot_pyinstallcheck_test (FilteringWindows_std)
ot_pyinstallcheck_test (WelchFactory_std)
ot_pyinstallcheck_test (ExponentialModel_std)
ot_pyinstallcheck_test (CovarianceModel_std IGNOREOUT)
ot_pyinstallcheck_test (ExponentiallyDampedCosineModel_std)
ot_pyinstallcheck_test (CauchyModel_std)
ot_pyinstallcheck_test (UserDefinedSpectralModel_std)
ot_pyinstallcheck_test (UserDefinedCovarianceModel_std)
ot_pyinstallcheck_test (UserDefinedStationaryCovarianceModel_std)
ot_pyinstallcheck_test (StationaryCovarianceModelFactory_std)
ot_pyinstallcheck_test (NonStationaryCovarianceModelFactory_std)
ot_pyinstallcheck_test (ProductCovarianceModel_std)
ot_pyinstallcheck_test (StationaryFunctionalCovarianceModel_std IGNOREOUT)
ot_pyinstallcheck_test (LatentVariableModel_std IGNOREOUT)
ot_pyinstallcheck_test (ProcessSample_operators IGNOREOUT)
ot_pyinstallcheck_test (Field_operators IGNOREOUT)

if (HMAT_FOUND)
ot_pyinstallcheck_test (HMatrix_std)
endif ()

# Geom
ot_pyinstallcheck_test (Domain_std)
ot_pyinstallcheck_test (Interval_std)
ot_pyinstallcheck_test (IntervalMesher_std)
ot_pyinstallcheck_test (LevelSet_std)
ot_pyinstallcheck_test (LevelSetMesher_std)
ot_pyinstallcheck_test (Mesh_std)
ot_pyinstallcheck_test (Mesh_draw IGNOREOUT)
ot_pyinstallcheck_test (BoundaryMesher_std IGNOREOUT)
ot_pyinstallcheck_test (DomainComplement_std)
ot_pyinstallcheck_test (DomainDifference_std)
ot_pyinstallcheck_test (DomainIntersection_std)
ot_pyinstallcheck_test (DomainUnion_std)
ot_pyinstallcheck_test (DomainDisjunctiveUnion_std)

## Graph
ot_pyinstallcheck_test (BarPlot_std)
ot_pyinstallcheck_test (Cloud_std)
ot_pyinstallcheck_test (Contour_std)
ot_pyinstallcheck_test (Curve_std)
ot_pyinstallcheck_test (Drawable_std)
ot_pyinstallcheck_test (Graph_mix)
ot_pyinstallcheck_test (Pie_std)
ot_pyinstallcheck_test (Polygon_std)
ot_pyinstallcheck_test (PolygonArray_std)
ot_pyinstallcheck_test (Staircase_std)
ot_pyinstallcheck_test (Text_std)
ot_pyinstallcheck_test (GridLayout_std IGNOREOUT)

## Diff
ot_pyinstallcheck_test (FiniteDifferenceStep_std)
ot_pyinstallcheck_test (CenteredFiniteDifferenceGradient_std)
ot_pyinstallcheck_test (CenteredFiniteDifferenceHessian_std)
ot_pyinstallcheck_test (NonCenteredFiniteDifferenceGradient_std)

## Optim
ot_pyinstallcheck_test (AbdoRackwitz_std IGNOREOUT)
if (Bonmin_FOUND)
  ot_pyinstallcheck_test (Bonmin_std IGNOREOUT)
  ot_pyinstallcheck_test (Bonmin_4dsoo IGNOREOUT)
  ot_pyinstallcheck_test (Bonmin_MIT15 IGNOREOUT)
  ot_pyinstallcheck_test (Bonmin_swiler2014 IGNOREOUT)
endif ()
if (Ipopt_FOUND)
  ot_pyinstallcheck_test (Ipopt_std IGNOREOUT)
endif ()
if (Ceres_FOUND)
  ot_pyinstallcheck_test (Ceres_std IGNOREOUT)
endif ()
if (CMinpack_FOUND)
  ot_pyinstallcheck_test (CMinpack_std IGNOREOUT)
endif ()
ot_pyinstallcheck_test (Cobyla_std)
if (dlib_FOUND)
  ot_pyinstallcheck_test (Dlib_std IGNOREOUT)
  ot_pyinstallcheck_test (Dlib_lsq IGNOREOUT)
  ot_pyinstallcheck_test (Dlib_global IGNOREOUT)
endif ()
if (highs_FOUND)
  ot_pyinstallcheck_test (HiGHS_std IGNOREOUT)
endif ()
ot_pyinstallcheck_test (LinearProblem_std IGNOREOUT)
ot_pyinstallcheck_test (MultiStart_std IGNOREOUT)
if (NLopt_FOUND)
  ot_pyinstallcheck_test (NLopt_std IGNOREOUT)
endif ()
ot_pyinstallcheck_test (OptimizationAlgorithm_std IGNOREOUT)
if (Pagmo_FOUND)
  ot_pyinstallcheck_test (Pagmo_std IGNOREOUT)
endif ()
ot_pyinstallcheck_test (EfficientGlobalOptimization_std IGNOREOUT)
ot_pyinstallcheck_test (SQP_std IGNOREOUT)
ot_pyinstallcheck_test (TNC_std)
ot_pyinstallcheck_test (LOLAVoronoi_std IGNOREOUT)

## Solver
ot_pyinstallcheck_test (Brent_std)
ot_pyinstallcheck_test (Bisection_std)
ot_pyinstallcheck_test (Secant_std)
ot_pyinstallcheck_test (Solver_hard)
ot_pyinstallcheck_test (RungeKutta_std)
ot_pyinstallcheck_test (Fehlberg_std)
ot_pyinstallcheck_test (LeastSquaresEquationsSolver_std IGNOREOUT)


# Algo
ot_pyinstallcheck_test (PenalizedLeastSquaresAlgorithm_std)
ot_pyinstallcheck_test (KFold_std)
ot_pyinstallcheck_test (CorrectedLeaveOneOut_std)
if (NUMPY_FOUND)
  ot_pyinstallcheck_test (KDTree_std IGNOREOUT)
  ot_pyinstallcheck_test (NaiveNearestNeighbour_std IGNOREOUT)
  ot_pyinstallcheck_test (NearestNeighbour1D_std)
endif ()
ot_pyinstallcheck_test (RegularGridNearestNeighbour_std)
ot_pyinstallcheck_test (BoundingVolumeHierarchy_std)
ot_pyinstallcheck_test (NaiveEnclosingSimplex_std)
ot_pyinstallcheck_test (RegularGridEnclosingSimplex_std IGNOREOUT)
ot_pyinstallcheck_test (EnclosingSimplexMonotonic1D_std IGNOREOUT)
ot_pyinstallcheck_test (LeastSquaresMetaModelSelectionFactory_std)
ot_pyinstallcheck_test (KissFFT_std)
ot_pyinstallcheck_test (FilonQuadrature_std)
ot_pyinstallcheck_test (GaussKronrod_std)
ot_pyinstallcheck_test (GaussLegendre_std)
ot_pyinstallcheck_test (FejerAlgorithm_std IGNOREOUT)
ot_pyinstallcheck_test (IteratedQuadrature_std)
ot_pyinstallcheck_test (DesignProxy_std)
ot_pyinstallcheck_test (LeastSquaresMethod_std)
ot_pyinstallcheck_test (KarhunenLoeveP1Algorithm_std)
ot_pyinstallcheck_test (KarhunenLoeveSVDAlgorithm_std)
ot_pyinstallcheck_test (KarhunenLoeveResult_std IGNOREOUT)
ot_pyinstallcheck_test (KarhunenLoeveLifting_std)
ot_pyinstallcheck_test (KarhunenLoeveProjection_std)
ot_pyinstallcheck_test (KarhunenLoeveReduction_std IGNOREOUT)
ot_pyinstallcheck_test (KarhunenLoeveValidation_std IGNOREOUT)
ot_pyinstallcheck_test (P1LagrangeInterpolation_std)
ot_pyinstallcheck_test (P1LagrangeEvaluation_std IGNOREOUT)
ot_pyinstallcheck_test (SimplicialCubature_std IGNOREOUT)
if (Cuba_FOUND)
  ot_pyinstallcheck_test (CubaIntegration_std IGNOREOUT)
endif ()

## Model
ot_pyinstallcheck_test (StandardEvent_std)
ot_pyinstallcheck_test (Event_domain)
ot_pyinstallcheck_test (RandomVector_constant)
ot_pyinstallcheck_test (RandomVector_distribution)
ot_pyinstallcheck_test (RandomVector_composite)
ot_pyinstallcheck_test (RandomVector_conditional)
ot_pyinstallcheck_test (RandomVector_python)
ot_pyinstallcheck_test (RatioOfUniforms_std)
if (LIBXML2_FOUND AND DILL_FOUND)
  ot_pyinstallcheck_test (PythonRandomVector_save IGNOREOUT)
  ot_pyinstallcheck_test (PythonRandomVector_load IGNOREOUT)
  set_tests_properties(pyinstallcheck_PythonRandomVector_load
    PROPERTIES DEPENDS pyinstallcheck_PythonRandomVector_save)
endif ()
ot_pyinstallcheck_test (Event_system IGNOREOUT)

## Process
ot_pyinstallcheck_test (WhiteNoise_std)
ot_pyinstallcheck_test (RandomWalk_std)
ot_pyinstallcheck_test (DiscreteMarkovChain_std)
ot_pyinstallcheck_test (AggregatedProcess_std)
ot_pyinstallcheck_test (ARMAState_std)
ot_pyinstallcheck_test (ARMACoefficients_std)
ot_pyinstallcheck_test (ARMA_std)
ot_pyinstallcheck_test (GaussianProcess_std)
ot_pyinstallcheck_test (SpectralGaussianProcess_std)
ot_pyinstallcheck_test (CompositeProcess_std)
ot_pyinstallcheck_test (ARMALikelihoodFactory_std)
ot_pyinstallcheck_test (FunctionalBasisProcess_std)
ot_pyinstallcheck_test (WhittleFactory_std)
ot_pyinstallcheck_test (ConditionedGaussianProcess_std)
ot_pyinstallcheck_test (KarhunenLoeveQuadratureAlgorithm_std)
ot_pyinstallcheck_test (GaussianProcessRandomVector_std)

## Transformation
ot_pyinstallcheck_test (MarginalTransformationEvaluation_std)
ot_pyinstallcheck_test (MarginalTransformationGradient_std)
ot_pyinstallcheck_test (MarginalTransformationHessian_std)
ot_pyinstallcheck_test (InverseNatafIndependentCopulaEvaluation_std)
ot_pyinstallcheck_test (InverseNatafIndependentCopulaGradient_std)
ot_pyinstallcheck_test (InverseNatafIndependentCopulaHessian_std)
ot_pyinstallcheck_test (NatafIndependentCopulaEvaluation_std)
ot_pyinstallcheck_test (NatafIndependentCopulaGradient_std)
ot_pyinstallcheck_test (NatafIndependentCopulaHessian_std)
ot_pyinstallcheck_test (InverseRosenblattEvaluation_std)
ot_pyinstallcheck_test (InverseRosenblattEvaluation_form IGNOREOUT)
ot_pyinstallcheck_test (RosenblattEvaluation_std)
ot_pyinstallcheck_test (IsoProbabilisticTransformation_EllipticalDistribution)
ot_pyinstallcheck_test (IsoProbabilisticTransformation_EllipticalCopula)
ot_pyinstallcheck_test (IsoProbabilisticTransformation_IndependentCopula)
ot_pyinstallcheck_test (BoxCoxFactory_std)
ot_pyinstallcheck_test (BoxCoxFactory_glm)
ot_pyinstallcheck_test (BoxCoxFactory_lm IGNOREOUT)
ot_pyinstallcheck_test (TrendFactory_std)
ot_pyinstallcheck_test (DistributionTransformation_std)

## Distribution
ot_pyinstallcheck_test (AliMikhailHaqCopula_std)
ot_pyinstallcheck_test (AliMikhailHaqCopulaFactory_std)
ot_pyinstallcheck_test (Arcsine_std)
ot_pyinstallcheck_test (ArcsineFactory_std)
ot_pyinstallcheck_test (JointByConditioningDistribution_std)
ot_pyinstallcheck_test (Bernoulli_std)
ot_pyinstallcheck_test (BernoulliFactory_std)
ot_pyinstallcheck_test (BernsteinCopulaFactory_std)
ot_pyinstallcheck_test (Beta_std)
ot_pyinstallcheck_test (BetaFactory_std)
ot_pyinstallcheck_test (Binomial_std)
ot_pyinstallcheck_test (BinomialFactory_std)
ot_pyinstallcheck_test (BlockIndependentDistribution_std)
ot_pyinstallcheck_test (Burr_std)
ot_pyinstallcheck_test (BurrFactory_std)
ot_pyinstallcheck_test (Chi_std)
ot_pyinstallcheck_test (ChiFactory_std)
ot_pyinstallcheck_test (ChiSquare_std)
ot_pyinstallcheck_test (ChiSquareFactory_std)
ot_pyinstallcheck_test (ClaytonCopula_std)
ot_pyinstallcheck_test (ClaytonCopulaFactory_std)
ot_pyinstallcheck_test (BlockIndependentCopula_std)
ot_pyinstallcheck_test (JointDistribution_std)
ot_pyinstallcheck_test (JointDistribution_large)
ot_pyinstallcheck_test (CombinationsDistribution_std)
ot_pyinstallcheck_test (CompositeDistribution_std)
ot_pyinstallcheck_test (CompoundDistribution_std)
ot_pyinstallcheck_test (PointConditionalDistribution_std IGNOREOUT)
ot_pyinstallcheck_test (CumulativeDistributionNetwork_std)
ot_pyinstallcheck_test (Dirac_std)
ot_pyinstallcheck_test (DiracFactory_std)
ot_pyinstallcheck_test (Dirichlet_std)
ot_pyinstallcheck_test (DirichletFactory_std)
ot_pyinstallcheck_test (DiscreteCompoundDistribution_std)
ot_pyinstallcheck_test (Distribution_std IGNOREOUT)
ot_pyinstallcheck_test (DistributionFactory_std IGNOREOUT)
ot_pyinstallcheck_test (EmpiricalBernsteinCopula_std)
ot_pyinstallcheck_test (Epanechnikov_std)
ot_pyinstallcheck_test (Exponential_std)
ot_pyinstallcheck_test (ExponentialFactory_std)
ot_pyinstallcheck_test (ExtremeValueCopula_std)
ot_pyinstallcheck_test (JoeCopula_std)
ot_pyinstallcheck_test (FarlieGumbelMorgensternCopula_std)
ot_pyinstallcheck_test (FarlieGumbelMorgensternCopulaFactory_std)
ot_pyinstallcheck_test (FrankCopula_std)
ot_pyinstallcheck_test (FrankCopulaFactory_std)
ot_pyinstallcheck_test (FisherSnedecor_std)
ot_pyinstallcheck_test (FisherSnedecorFactory_std)
ot_pyinstallcheck_test (Frechet_std)
ot_pyinstallcheck_test (FrechetFactory_std)
ot_pyinstallcheck_test (GalambosCopula_std IGNOREOUT)
ot_pyinstallcheck_test (Gamma_std)
ot_pyinstallcheck_test (GammaFactory_std IGNOREOUT)
ot_pyinstallcheck_test (GeneralizedExtremeValue_std)
ot_pyinstallcheck_test (GeneralizedExtremeValueFactory_std IGNOREOUT)
ot_pyinstallcheck_test (GeneralizedExtremeValueValidation_std IGNOREOUT)
ot_pyinstallcheck_test (GeneralizedPareto_std)
ot_pyinstallcheck_test (GeneralizedParetoValidation_std IGNOREOUT)
ot_pyinstallcheck_test (GeneralizedParetoFactory_std IGNOREOUT)
ot_pyinstallcheck_test (Geometric_std)
ot_pyinstallcheck_test (GeometricFactory_std)
ot_pyinstallcheck_test (Gumbel_std)
ot_pyinstallcheck_test (GumbelFactory_std)
ot_pyinstallcheck_test (GumbelCopula_std)
ot_pyinstallcheck_test (GumbelCopulaFactory_std)
ot_pyinstallcheck_test (Histogram_std)
ot_pyinstallcheck_test (HistogramFactory_std)
ot_pyinstallcheck_test (Hypergeometric_std)
ot_pyinstallcheck_test (IndependentCopula_std)
ot_pyinstallcheck_test (IndependentCopulaFactory_std IGNOREOUT)
ot_pyinstallcheck_test (InverseChiSquare_std)
ot_pyinstallcheck_test (InverseGamma_std)
ot_pyinstallcheck_test (InverseNormal_std)
ot_pyinstallcheck_test (InverseNormalFactory_std)
ot_pyinstallcheck_test (InverseWishart_std)
ot_pyinstallcheck_test (KPermutationsDistribution_std)
ot_pyinstallcheck_test (KernelMixture_std)
ot_pyinstallcheck_test (KernelSmoothing_std)
if (NOT PROJECT_BINARY_DIR STREQUAL PROJECT_SOURCE_DIR)
  execute_process (COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/t_KernelSmoothing_segfault.csv ${CMAKE_CURRENT_BINARY_DIR})
endif ()
ot_pyinstallcheck_test (Laplace_std)
ot_pyinstallcheck_test (LaplaceFactory_std)
ot_pyinstallcheck_test (LeastSquaresDistributionFactory_std IGNOREOUT)
ot_pyinstallcheck_test (Logistic_std)
ot_pyinstallcheck_test (LogisticFactory_std)
ot_pyinstallcheck_test (LogNormal_std)
if (Ceres_FOUND OR CMinpack_FOUND)
ot_pyinstallcheck_test (LogNormalFactory_std)
endif ()
ot_pyinstallcheck_test (LogUniform_std)
ot_pyinstallcheck_test (LogUniformFactory_std)
ot_pyinstallcheck_test (OrderStatisticsMarginalChecker_std)
ot_pyinstallcheck_test (MarginalDistribution_std)
ot_pyinstallcheck_test (MarginalUniformOrderStatistics_std)
ot_pyinstallcheck_test (MarshallOlkinCopula_std)
ot_pyinstallcheck_test (MaximumDistribution_std)
ot_pyinstallcheck_test (MaximumEntropyOrderStatisticsDistribution_std)
ot_pyinstallcheck_test (MaximumLikelihoodFactory_std)
ot_pyinstallcheck_test (MeixnerDistribution_std)
ot_pyinstallcheck_test (MeixnerDistributionFactory_std)
ot_pyinstallcheck_test (MethodOfMomentsFactory_std IGNOREOUT)
ot_pyinstallcheck_test (MinCopula_std)
ot_pyinstallcheck_test (MixedHistogramUserDefined_std)
ot_pyinstallcheck_test (Mixture_std)
ot_pyinstallcheck_test (Multinomial_std)
ot_pyinstallcheck_test (MultinomialFactory_std)
ot_pyinstallcheck_test (Polya_std)
ot_pyinstallcheck_test (PolyaFactory_std)
ot_pyinstallcheck_test (NonCentralChiSquare_std)
if (Boost_FOUND)
ot_pyinstallcheck_test (NonCentralStudent_std)
endif ()
ot_pyinstallcheck_test (Normal_std)
ot_pyinstallcheck_test (NormalFactory_std)
ot_pyinstallcheck_test (Normal_large)
ot_pyinstallcheck_test (NormalCopula_std)
ot_pyinstallcheck_test (NormalCopulaFactory_std)
ot_pyinstallcheck_test (Normal_wrongarg)
ot_pyinstallcheck_test (NormalGamma_std)
ot_pyinstallcheck_test (OrdinalSumCopula_std)
ot_pyinstallcheck_test (ParametrizedDistribution_std)
ot_pyinstallcheck_test (Pareto_std)
if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND (Ceres_FOUND OR CMinpack_FOUND))
ot_pyinstallcheck_test (ParetoFactory_std)
endif ()
ot_pyinstallcheck_test (PlackettCopula_std)
ot_pyinstallcheck_test (PlackettCopulaFactory_std)
ot_pyinstallcheck_test (Poisson_std)
ot_pyinstallcheck_test (PoissonFactory_std)
ot_pyinstallcheck_test (PosteriorDistribution_std)
ot_pyinstallcheck_test (ProductDistribution_std)
ot_pyinstallcheck_test (QuantileMatchingFactory_std IGNOREOUT)
ot_pyinstallcheck_test (RandomMixture_std)
ot_pyinstallcheck_test (RandomMixture_simplification)
ot_pyinstallcheck_test (RandomMixture_grid1d)
ot_pyinstallcheck_test (RandomMixture_grid2d)
ot_pyinstallcheck_test (RandomMixture_grid3d)
ot_pyinstallcheck_test (Rayleigh_std)
ot_pyinstallcheck_test (RayleighFactory_std)
ot_pyinstallcheck_test (Rice_std)
ot_pyinstallcheck_test (RiceFactory_std)
ot_pyinstallcheck_test (Skellam_std)
ot_pyinstallcheck_test (SkellamFactory_std)
ot_pyinstallcheck_test (SklarCopula_std)
ot_pyinstallcheck_test (SmoothedUniform_std)
ot_pyinstallcheck_test (SmoothedUniformFactory_std IGNOREOUT)
ot_pyinstallcheck_test (SquaredNormal_std)
ot_pyinstallcheck_test (Student_std)
ot_pyinstallcheck_test (StudentCopula_std IGNOREOUT)
ot_pyinstallcheck_test (StudentCopulaFactory_std IGNOREOUT)
ot_pyinstallcheck_test (StudentFactory_std)
ot_pyinstallcheck_test (Trapezoidal_std)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
ot_pyinstallcheck_test (TrapezoidalFactory_std)
endif ()
ot_pyinstallcheck_test (Triangular_std)
ot_pyinstallcheck_test (TriangularFactory_std)
ot_pyinstallcheck_test (TruncatedDistribution_std)
ot_pyinstallcheck_test (TruncatedNormal_std)
if (CMinpack_FOUND OR Ceres_FOUND)
ot_pyinstallcheck_test (TruncatedNormalFactory_std)
endif ()
ot_pyinstallcheck_test (TruncatedOverMesh_std)
ot_pyinstallcheck_test (Uniform_std)
ot_pyinstallcheck_test (UniformFactory_std)
ot_pyinstallcheck_test (UniformOverMesh_std)
ot_pyinstallcheck_test (UniformOrderStatistics_std)
ot_pyinstallcheck_test (UserDefined_std)
ot_pyinstallcheck_test (UserDefinedFactory_std)
ot_pyinstallcheck_test (VonMises_std)
ot_pyinstallcheck_test (VonMisesFactory_std)
ot_pyinstallcheck_test (WeibullMax_std)
ot_pyinstallcheck_test (WeibullMaxFactory_std)
ot_pyinstallcheck_test (WeibullMin_std)
ot_pyinstallcheck_test (WeibullMinFactory_std)
ot_pyinstallcheck_test (Wishart_std)
ot_pyinstallcheck_test (ZipfMandelbrot_std)
ot_pyinstallcheck_test (DistributionParameters_std IGNOREOUT)
ot_pyinstallcheck_test (DistFunc_beta)
ot_pyinstallcheck_test (DistFunc_binomial IGNOREOUT)
if (NOT PROJECT_BINARY_DIR STREQUAL PROJECT_SOURCE_DIR)
  execute_process (COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/t_DistFunc_binomial1.csv ${CMAKE_CURRENT_BINARY_DIR})
  execute_process (COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/t_DistFunc_binomial2.csv ${CMAKE_CURRENT_BINARY_DIR})
endif ()
ot_pyinstallcheck_test (DistFunc_discrete)
ot_pyinstallcheck_test (DistFunc_gamma)
ot_pyinstallcheck_test (DistFunc_kfactor)
ot_pyinstallcheck_test (DistFunc_kolmogorov)
ot_pyinstallcheck_test (DistFunc_noncentralchisquare)
ot_pyinstallcheck_test (DistFunc_noncentralstudent)
ot_pyinstallcheck_test (DistFunc_normal)
ot_pyinstallcheck_test (DistFunc_poisson)
ot_pyinstallcheck_test (DistFunc_student)
ot_pyinstallcheck_test (DistFunc_spearman)
ot_pyinstallcheck_test (Distribution_draw)
ot_pyinstallcheck_test (Distribution_python)
if (LIBXML2_FOUND)
ot_pyinstallcheck_test (Distribution_python_saveload)
endif ()
if (LIBXML2_FOUND AND DILL_FOUND)
  ot_pyinstallcheck_test (PythonDistribution_save IGNOREOUT)
  ot_pyinstallcheck_test (PythonDistribution_load IGNOREOUT)
  set_tests_properties(pyinstallcheck_PythonDistribution_load
    PROPERTIES DEPENDS pyinstallcheck_PythonDistribution_save)
endif ()
ot_pyinstallcheck_test (Distribution_gradient IGNOREOUT)
ot_pyinstallcheck_test (Distribution_quantile)
ot_pyinstallcheck_test (Distribution_arithmetic)
if (SCIPY_FOUND)
  ot_pyinstallcheck_test (Distribution_scipy)
endif ()
if (CHAOSPY_FOUND)
  ot_pyinstallcheck_test (Distribution_chaospy)
endif ()
ot_pyinstallcheck_test (Distribution_roughness)

## Calibration
ot_pyinstallcheck_test (GaussianLinearCalibration_std)
ot_pyinstallcheck_test (LinearLeastSquaresCalibration_std)
ot_pyinstallcheck_test (RandomVectorMetropolisHastings_std IGNOREOUT)
ot_pyinstallcheck_test (RandomWalkMetropolisHastings_std IGNOREOUT)
ot_pyinstallcheck_test (IndependentMetropolisHastings_std IGNOREOUT)
ot_pyinstallcheck_test (UserDefinedMetropolisHastings_std IGNOREOUT)
ot_pyinstallcheck_test (Gibbs_regression IGNOREOUT)
ot_pyinstallcheck_test (Gibbs_std IGNOREOUT)
if (NUMPY_FOUND)
  ot_pyinstallcheck_test (Gibbs_mixture IGNOREOUT)
endif ()
ot_pyinstallcheck_test (GaussianLinearCalibration_chaboche)
ot_pyinstallcheck_test (LinearLeastSquaresCalibration_linear)
ot_pyinstallcheck_test (LinearLeastSquaresCalibration_noobs)
ot_pyinstallcheck_test (GaussianLinearCalibration_noobs)
if (Ceres_FOUND OR CMinpack_FOUND)
  ot_pyinstallcheck_test (CalibrationResult_std IGNOREOUT)
  ot_pyinstallcheck_test (NonLinearLeastSquaresCalibration_std)
  ot_pyinstallcheck_test (NonLinearLeastSquaresCalibration_noobs)
  ot_pyinstallcheck_test (GaussianNonLinearCalibration_std)
  ot_pyinstallcheck_test (GaussianNonLinearCalibration_noobs)
endif ()
ot_pyinstallcheck_test (Calibration_console IGNOREOUT)
if (NOT PROJECT_BINARY_DIR STREQUAL PROJECT_SOURCE_DIR)
  execute_process (COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/t_Calibration_console.csv ${CMAKE_CURRENT_BINARY_DIR})
endif ()

## Classification
ot_pyinstallcheck_test (MixtureClassifier_std)
ot_pyinstallcheck_test (MinimumVolumeClassifier_std IGNOREOUT)

## Experiments
ot_pyinstallcheck_test (Axial_std)
ot_pyinstallcheck_test (Box_std)
ot_pyinstallcheck_test (Composite_std)
ot_pyinstallcheck_test (Factorial_std)
ot_pyinstallcheck_test (BootstrapExperiment_std)
ot_pyinstallcheck_test (FixedExperiment_std)
ot_pyinstallcheck_test (GaussProductExperiment_std)
ot_pyinstallcheck_test (SmolyakExperiment_std IGNOREOUT)
ot_pyinstallcheck_test (ImportanceSamplingExperiment_std)
ot_pyinstallcheck_test (ExperimentIntegration_std IGNOREOUT)
ot_pyinstallcheck_test (SpaceFilling_std)
ot_pyinstallcheck_test (OptimalLHSExperiment_ishigami IGNOREOUT)
ot_pyinstallcheck_test (OptimalLHSExperiment_std)
ot_pyinstallcheck_test (MonteCarloLHS_std)
ot_pyinstallcheck_test (SimulatedAnnealingLHS_std)
ot_pyinstallcheck_test (LHSExperiment_std)
ot_pyinstallcheck_test (LowDiscrepancyExperiment_std)
ot_pyinstallcheck_test (MonteCarloExperiment_std)
ot_pyinstallcheck_test (CombinatorialGenerator_std)
ot_pyinstallcheck_test (Experiment_python)
ot_pyinstallcheck_test (Splitter_std IGNOREOUT)
ot_pyinstallcheck_test (TensorProductExperiment_std IGNOREOUT)
ot_pyinstallcheck_test (FejerExperiment_std IGNOREOUT)

# IterativeStat
ot_pyinstallcheck_test (IterativeExtrema_std IGNOREOUT)
ot_pyinstallcheck_test (IterativeThreshold_std IGNOREOUT)
ot_pyinstallcheck_test (IterativeMoments_std IGNOREOUT)

## OrthogonalBasis
ot_pyinstallcheck_test (LinearEnumerateFunction_std)
ot_pyinstallcheck_test (HyperbolicAnisotropicEnumerateFunction_std)
ot_pyinstallcheck_test (NormInfEnumerateFunction_std)
ot_pyinstallcheck_test (CharlierFactory_std)
ot_pyinstallcheck_test (ChebychevFactory_std)
ot_pyinstallcheck_test (HermiteFactory_std)
ot_pyinstallcheck_test (HistogramPolynomialFactory_std)
ot_pyinstallcheck_test (JacobiFactory_std)
ot_pyinstallcheck_test (KrawtchoukFactory_std)
ot_pyinstallcheck_test (LaguerreFactory_std)
ot_pyinstallcheck_test (LegendreFactory_std)
ot_pyinstallcheck_test (MeixnerFactory_std)
ot_pyinstallcheck_test (SoizeGhanemFactory_std)
ot_pyinstallcheck_test (FiniteOrthogonalFunctionFactory_std)
ot_pyinstallcheck_test (OrthonormalizationAlgorithm_std)
ot_pyinstallcheck_test (AdaptiveStieltjesAlgorithm_std)
ot_pyinstallcheck_test (StandardDistributionPolynomialFactory_std IGNOREOUT)
ot_pyinstallcheck_test (OrthogonalBasis_std)
ot_pyinstallcheck_test (OrthogonalUniVariatePolynomialFunctionFactory_std)
ot_pyinstallcheck_test (FourierSeriesFactory_std)
ot_pyinstallcheck_test (HaarWaveletFactory_std)
ot_pyinstallcheck_test (OrthogonalProductPolynomialFactory_std)
ot_pyinstallcheck_test (OrthogonalProductFunctionFactory_std)

## Algorithm
ot_pyinstallcheck_test (QuantileConfidence_std IGNOREOUT)
ot_pyinstallcheck_test (TaylorExpansionMoments_std)

## Analytical
ot_pyinstallcheck_test (Analytical_std)
ot_pyinstallcheck_test (AnalyticalResult_std)
ot_pyinstallcheck_test (FORM_std)
ot_pyinstallcheck_test (FORM_draw)
ot_pyinstallcheck_test (FORM_sensitivity)
ot_pyinstallcheck_test (FORM_interval)
ot_pyinstallcheck_test (SORM_std)
ot_pyinstallcheck_test (StrongMaximumTest_std)
ot_pyinstallcheck_test (StrongMaximumTest_other)
ot_pyinstallcheck_test (StrongMaximumTest_tabulatedValues)
if (NOT MSVC)
ot_pyinstallcheck_test (SystemFORM_std IGNOREOUT)
endif ()
ot_pyinstallcheck_test (MultiFORM_std IGNOREOUT)

## MetaModel
ot_pyinstallcheck_test (LinearTaylor_std)
ot_pyinstallcheck_test (LinearLeastSquares_std)
ot_pyinstallcheck_test (QuadraticLeastSquares_std IGNOREOUT)
ot_pyinstallcheck_test (QuadraticTaylor_std)
ot_pyinstallcheck_test (ProjectionStrategy_std)
ot_pyinstallcheck_test (FunctionalChaos_ishigami)
ot_pyinstallcheck_test (FunctionalChaos_ishigami_sparse)
ot_pyinstallcheck_test (FunctionalChaos_ishigami_database)
ot_pyinstallcheck_test (FunctionalChaos_gsobol)
ot_pyinstallcheck_test (FunctionalChaos_gsobol_sparse)
ot_pyinstallcheck_test (FunctionalChaos_mixed IGNOREOUT)
ot_pyinstallcheck_test (FunctionalChaos_conditionalExpectation IGNOREOUT)
ot_pyinstallcheck_test (FunctionalChaos_nd)
ot_pyinstallcheck_test (FunctionalChaosSobolIndices_std)
ot_pyinstallcheck_test (FunctionalChaosValidation_std IGNOREOUT)
ot_pyinstallcheck_test (LeastSquaresExpansion_std IGNOREOUT)
ot_pyinstallcheck_test (IntegrationExpansion_std IGNOREOUT)
ot_pyinstallcheck_test (KrigingAlgorithm_std)
ot_pyinstallcheck_test (KrigingAlgorithm_funcmodel IGNOREOUT)
ot_pyinstallcheck_test (KrigingAlgorithm_nuggetFactor IGNOREOUT)
ot_pyinstallcheck_test (KrigingRandomVector_std)
ot_pyinstallcheck_test (MetaModelAlgorithm_std)
ot_pyinstallcheck_test (MetaModelValidation_std)
ot_pyinstallcheck_test (GeneralLinearModelAlgorithm_std)
ot_pyinstallcheck_test (GaussianProcessFitter_std IGNOREOUT)
ot_pyinstallcheck_test (GaussianProcessRegression_std IGNOREOUT)
ot_pyinstallcheck_test (GaussianProcessRegression_nuggetFactor IGNOREOUT)
ot_pyinstallcheck_test (GaussianProcessConditionalCovariance_std IGNOREOUT)
if (HMAT_FOUND)
  ot_pyinstallcheck_test (KrigingAlgorithm_std_hmat)
  ot_pyinstallcheck_test (GeneralLinearModelAlgorithm_std_hmat)
  ot_pyinstallcheck_test (GaussianProcessFitter_std_hmat IGNOREOUT)
  ot_pyinstallcheck_test (GaussianProcessRegression_std_hmat IGNOREOUT)
endif ()
if (NLopt_FOUND)
  ot_pyinstallcheck_test (GeneralLinearModelAlgorithm_nlopt IGNOREOUT)
  ot_pyinstallcheck_test (GaussianProcessFitter_nlopt IGNOREOUT)
  ot_pyinstallcheck_test (GaussianProcessRegression_nlopt IGNOREOUT)
endif ()
ot_pyinstallcheck_test (LinearModelAlgorithm_std)
ot_pyinstallcheck_test (LinearModelAnalysis_std)
ot_pyinstallcheck_test (LinearModelStepwiseAlgorithm_std)
ot_pyinstallcheck_test (LinearModelValidation_std IGNOREOUT)
ot_pyinstallcheck_test (KrigingAlgorithm_isotropic_std IGNOREOUT)
ot_pyinstallcheck_test (FieldToPointFunctionalChaosAlgorithm_std IGNOREOUT)
ot_pyinstallcheck_test (FieldFunctionalChaosSobolIndices_std IGNOREOUT)
ot_pyinstallcheck_test (PointToFieldFunctionalChaosAlgorithm_std IGNOREOUT)

## Sensitivity
ot_pyinstallcheck_test (ANCOVA_std)
ot_pyinstallcheck_test (FAST_std)
ot_pyinstallcheck_test (SobolIndicesAlgorithm_std)
ot_pyinstallcheck_test (SobolIndicesExperiment_std)
ot_pyinstallcheck_test (RankSobolSensitivityAlgorithm_std IGNOREOUT)
ot_pyinstallcheck_test (HSICStat_std IGNOREOUT)
ot_pyinstallcheck_test (HSICEstimatorConditionalSensitivity_std IGNOREOUT)
ot_pyinstallcheck_test (HSICEstimatorTargetSensitivity_std IGNOREOUT)
ot_pyinstallcheck_test (HSICEstimatorGlobalSensitivity_std IGNOREOUT)

## Simulation
ot_pyinstallcheck_test (Wilks_std)
ot_pyinstallcheck_test (SimulationSensitivityAnalysis_std)
ot_pyinstallcheck_test (ProbabilitySimulationAlgorithm_std)
ot_pyinstallcheck_test (ProbabilitySimulationAlgorithm_draw)
ot_pyinstallcheck_test (ProbabilitySimulationAlgorithm_inoutsample IGNOREOUT)
ot_pyinstallcheck_test (ProbabilitySimulationAlgorithm_sensitivity)
ot_pyinstallcheck_test (DirectionalSampling_std)
ot_pyinstallcheck_test (PostAnalyticalControlledImportanceSampling_std)
ot_pyinstallcheck_test (SubsetSampling_R-S)
ot_pyinstallcheck_test (SubsetSampling_Waarts_system_series)
ot_pyinstallcheck_test (AdaptiveDirectionalStratification_flood)
ot_pyinstallcheck_test (AdaptiveDirectionalStratification_hyperplane)
ot_pyinstallcheck_test (AdaptiveDirectionalStratification_std)
ot_pyinstallcheck_test (ExpectationSimulationAlgorithm_std)
ot_pyinstallcheck_test (LineSampling_std IGNOREOUT)
ot_pyinstallcheck_test (SobolSimulationAlgorithm_std)
ot_pyinstallcheck_test (NAIS_std IGNOREOUT)
ot_pyinstallcheck_test (StandardSpaceCrossEntropyImportanceSampling_std IGNOREOUT)
if (NLopt_FOUND)
  ot_pyinstallcheck_test (PhysicalSpaceCrossEntropyImportanceSampling_std IGNOREOUT)
endif ()


## StatTests
ot_pyinstallcheck_test (VisualTest_std)
ot_pyinstallcheck_test (HypothesisTest_correlation)
ot_pyinstallcheck_test (LinearModelTest_std)
ot_pyinstallcheck_test (HypothesisTest_std)
ot_pyinstallcheck_test (HypothesisTest_spearman)
ot_pyinstallcheck_test (DickeyFullerTest_std)
ot_pyinstallcheck_test (FittingTest_std)
ot_pyinstallcheck_test (NormalityTest_std)

## Waarts
ot_pyinstallcheck_test (Waarts_25_quadratic_terms)
ot_pyinstallcheck_test (Waarts_concave IGNOREOUT)
ot_pyinstallcheck_test (Waarts_convex IGNOREOUT)
ot_pyinstallcheck_test (Waarts_discontinuous_lsf IGNOREOUT)
ot_pyinstallcheck_test (Waarts_noisy_lsf IGNOREOUT)
ot_pyinstallcheck_test (Waarts_oblate IGNOREOUT)
ot_pyinstallcheck_test (Waarts_RS2 IGNOREOUT)
ot_pyinstallcheck_test (Waarts_system_series)
ot_pyinstallcheck_test (Waarts_saddle)

## Misc
if (MATPLOTLIB_FOUND)
  file (GLOB_RECURSE PYFILES "${PROJECT_SOURCE_DIR}/python/doc/examples/*/*.py")
  foreach (PYF ${PYFILES})
    if (PYF MATCHES plot)
      get_filename_component (TESTNAME "${PYF}" NAME_WE)
      add_test (NAME pyinstallcheck_example_${TESTNAME} COMMAND ${Python_EXECUTABLE} ${PYF})
      set_tests_properties (pyinstallcheck_example_${TESTNAME} PROPERTIES ENVIRONMENT "${PYINSTALLCHECK_ENVIRONMENT}")
    endif ()
  endforeach ()
  if (NOT Bonmin_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_optimization_bonmin PROPERTIES DISABLED TRUE)
  endif()
  if (NOT CMinpack_FOUND AND NOT Ceres_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_calibration_flooding PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_calibration_chaboche PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_calibration_deflection_tube PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT dlib_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_optimization_dlib PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT highs_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_optimization_highs PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT HMAT_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_gpr_cantilever_beam_hmat PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_gaussian_process_covariance_hmat PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT LIBXML2_FOUND OR NOT HDF5_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_study_save_load PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_export_metamodel PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT NLopt_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_ego PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_optimization_nlopt PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_optimization_rosenbrock PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_advanced_mle_estimator PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_gpr_advanced PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_gpr_hyperparameters_optimization PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_kriging_vs_gpr PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT Pagmo_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_optimization_pagmo PROPERTIES DISABLED TRUE)
  endif ()
  if (NOT PANDAS_FOUND)
    set_tests_properties (pyinstallcheck_example_plot_sample_pandas PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_estimate_gpd_wooster PROPERTIES DISABLED TRUE)
    set_tests_properties (pyinstallcheck_example_plot_estimate_gpd_dowjones PROPERTIES DISABLED TRUE)
  endif ()
endif ()

if (MATPLOTLIB_FOUND)
  ot_pyinstallcheck_test (Viewer IGNOREOUT)
  ot_pyinstallcheck_test (PlotDesign IGNOREOUT)
endif ()
ot_pyinstallcheck_test (PlatformInfo_std IGNOREOUT)
ot_pyinstallcheck_test (coupling_tools)
ot_pyinstallcheck_test (None IGNOREOUT)
ot_pyinstallcheck_test (docstring_missing IGNOREOUT)
ot_pyinstallcheck_test (sphinx_missing IGNOREOUT)
ot_pyinstallcheck_test (ResourceMap_missing IGNOREOUT)
ot_pyinstallcheck_test (testcode IGNOREOUT)



if (OPENTURNS_HAVE_ANALYTICAL_PARSER AND MATPLOTLIB_FOUND)
  # source modules
  file (GLOB modules ${PROJECT_SOURCE_DIR}/python/src/*.py)
  # swig modules
  foreach (module ${OPENTURNS_PYTHON_MODULES})
    list (APPEND modules ${PROJECT_BINARY_DIR}/python/src/${module}.py)
  endforeach ()
  foreach (module ${modules})
    get_filename_component (module_name ${module} NAME_WE)
    add_test (pyinstallcheck_docstring_${module_name} ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/t_docstring.py ${module})
    set_tests_properties (pyinstallcheck_docstring_${module_name} PROPERTIES ENVIRONMENT "${PYINSTALLCHECK_ENVIRONMENT}")
  endforeach()
  if (NOT LIBXML2_FOUND)
    set_tests_properties (pyinstallcheck_docstring_common PROPERTIES WILL_FAIL TRUE)
  endif ()
endif ()

add_custom_target (pyinstallcheck COMMAND ${CMAKE_CTEST_COMMAND} --build-config ${CMAKE_BUILD_TYPE} --tests-regex "^pyinstallcheck_"
                    COMMENT "Run Python post-installation tests")
add_dependencies (installcheck pyinstallcheck)
